هب انم آنکه جان را فک رت آموخت بخش ششم: عملیات در پایگاه داده رابطهای مرتضی امینی نیمسال دوم 92-91 )محتویات اسالیدها برگرفته از یادداشتهای کالسی استاد محمدتقی روحانی رانکوهی است.(
یادآوری: مدل دادهای 2 S M جبر رابطهای حساب رابطهای امکانات عملیاتی رابطه مبنا رابطه مجازی )دید( رابطه موقت رابطه لحظهای رابطه مشتق )رابطه روی رابطههای دیگر( )Snapshot( مفاهیم دارد و انواع رابطه که مرتبط با آن I امکانات کنترل جامعیت قواعد عام قواعد خاص دامنه تاپل کلید صفت...
جبر رابطهای 3 اجتماع - UNION عملگرهای دو عملوندی R 1 op R 2 op,,,, عملگرها عملگرهای متعارف اشتراک - INTERSECT تفاضل - MINUS ضرب کارتزین - TIMES عملگرهای خاص گزینش یا تحدید پرتو یا تصویر پیوند یا الصاق RESTRICT - PROJECT - JOIN -
عملگرهای متعارف جبر رابطهای 4 خاصیت بسته بودن: حاصل ارزیابی هر عبارت جبر رابطهای معتبر باز هم یک رابطه )که تکراری ندارد( است. برای سه عملگر باید عملوندها نوع-سازگار Compatible( )Type باشند: و - H R 1 = H R2 R 3 = R 1 op R 2 H = H R 3 R1 = H R2 بدنه نتیجه حاصل انجام هر یک از ا عمال اجتماع اشتراک و یا تفاضل دو مجموعه بدنه است. :)TIMES( در عملگر ضرب کارتزین H R 2 H R1 = شرط: در عنوان دو رابطه نباید صفت همنام وجود داشته باشد. عنوان رابطه نتیجه برابر است با H R 2 H R1 و بدنه نتیجه برابر ضرب کارتزین دو مجموعه بدنه است. TIMES در SQL چگونه شبیهسازی میشود
عملگر گزینش 5 عملگر گزینش یا تحدید - RESTRICT σ c یا p نماد ریاضی: مسند گزینش شرط یا شرایط گزینش یک عبارت بولی تشکیل شده از شرطهای ساده به صورت یا A i theta A j A i theta literal که در آن theta یکی از عملگرهای = > < و است. RESTRICT R WHERE c یا R WHERE c یا σ c (R) شکل کلی: Monadic عملوندی: تک عملکرد )در نمایش جدولی رابطه(: زیرمجموعهای افقی میدهد. عملگر تاپل)ها(یاب R A 1 A 2... A m تاپلهای دارای شرایط
عملگر گزینش )ادامه( 6 مشخصات کامل دانشجویان رشته فیزیک دوره کارشناسی را بدهید. σ STJ= phys STL= bs (STT) SELECT STT.* FROM STT WHERE STJ= phys AND STL= bs وقتی در کالز WHERE بخشی از کلید را با شرط تساوی داده باشیم..CK R CK R اگر R = σ c R باشد آنگاه
عملگر گزینش )ادامه( 7 عملگر گزینش جابجاییپذیر است یعنی: σ c1 σ c2 R = σ c2 σ c1 R = σ c1 c2 (R) عبارتهای جبری معادل: R WHERE (C 1 AND C 2 ) (R WHERE C 1 ) INTERSECT (R WHERE C 2 ) R WHERE (C 1 OR C 2 ) (R WHERE C 1 ) UNION (R WHERE C 2 ) R WHERE NOT C R MINUS (R WHERE C)
عملگر پرتو 8 PROJECT عملگر پرتو - Π نماد ریاضی: PROJECT R OVER (L) R [L] Π L شکل کلی: R یا یا تک عملوندی: لیست صفات پرتو Monodic عملکرد )در نمایش جدولی رابطه(: زیرمجموعه عمودی میدهد. عملگر ستون)ها(یاب R A 1... A i... A j... A m
پرتو عملگر )ادامه( 9 عملگر پرتو تکراریها را حذف میکند. چون جواب رابطه است پس یک مجموعه است و عضو تکراری ندارد. و رشته شماره تمام دانشجویان را بدهید. Π STID,STJ (STT) SELECT STID, STJ FROM STT شماره دانشجویانی که درسی انتخاب نکردهاند. R Π STID STT Π STID STCOT شماره و مقطع تحصیلی دانشجویان رشته IT را بدهید. Π STID,STL σ STJ= IT (STT)
عملگر پرتو )ادامه( 10 اگر R = Π L باشد آنگاه: R CK R = CK R آنگاه CK R L اگر.CK R = L اگر نه در حالت کلی.CK R =? آنگاه op,,,, اگر R = R 1 op R 2 و استاندارد در حالت کلی ترکیبی از دو عملگر RESTRICT و PROJECT است. SQL در SELECT
عملگر پرتو گسترش یافته 11 EXTENDED PROJECT عملگر پرتو گسترش یافته - نماد ریاضی: Π شکل کلی: (R) Π F1,F2,,Fn لیست صفات و یا توابع حسابی پرتو این عملگر امکان میدهد تا در لیست صفات پرتو از توابع حسابی استفاده شود و صفت با )صفاتی( مقادیر حاصل از اجرای تابع )توابع( در رابطه جواب داشت. رابطهای با صفات شماره دانشجو شماره درس و نمره دانشجو در درس تغییریافته با فرمول G:=1.2*GRADE بدهید. Π STID, COID, 1.2 GRADE RENAME AS G STCOT
عملگر تغییر نام 12 RENAME عملگر تغییر نام - ρ نماد ریاضی: ρ R E شکل کلی: نام رابطه حاصل از عبارت جبر رابطهای E این عملگر برای نامیدن رابطه حاصل از یک عبارت جبر رابطهای به کار میرود. عملکرد: ρ R E رابطه حاصل از عبارت جبر رابطهای E را با نام R برمیگرداند. از عملگر RENAME برای دگرنامی صفت هم میتوان استفاده کرد )مشابه آنچه در مثال اسالید قبل B j A i آمد(. R RENAME A i AS B j مثال با دستور به صفت از R نام دیگر داده میشود.
عملگر پیوند 13 عملگر پیوند JOIN )مدل ریاضی عمومی( Theta Join نام عمومی: Cond(s) نماد ریاضی: R 1 (A 1, A 2,, A n ) R 2 و دو رابطه فرض: R 1 نام صفت مشترک ندارند. R 2 (B 1, B 2,, B m ) R 1 JOIN C R 2 R 1 θ JOIN C R 2 شکل کلی: R 1 C R 2 یا یا فقط EQUI-JOIN = NOT EQUI-JOIN LESS THAN-JOIN LESS EQUI-JOIN < Theta GREATER THAN-JOIN > GREATER EQUI-JOIN
عملگر پیوند )ادامه( 14 R 1.A i theta R 2.B j )c(: شرط پیوند صفات پیوند که باید همدامنه و ناهمنام باشند. چون نتیجه JOIN رابطه است و در headingاش صفت تکراری نباید وجود داشته باشد. نکته: اگر صفات پیوند همنام باشند حداقل یکی را باید دگرنامی کرد. c n... در حالت کلی شرط پیوند میتواند به صورت زیر باشد که در آن c 1 قالب باال )قالب شرط را دارند. پیوند( <c 1 > AND <c 2 > AND AND <c n > <R1.A1 = R2.B1> AND <R1.A2 = R2.B2>
عملگر پیوند )ادامه( 15 مشخصات کامل جفت تهیهکننده-قطعه از یک شهر را بدهید. R 1 = S S.CITY=P.PCITY P RENAME CITY AS PCITY S (S#, SNAME, STATUS, CITY) S1 C1 S2 C2 S3 C3 S4 C4 S5 C5 S6 C6 P (P#,..., W, CITY) P1 5 C1 P2 6 C2 P3 4 C1 P4 7 C4 P5 10 C5 R 1 (S#,..., CITY, P#,..., W, PCITY) S1 C1 P1 5 C1 S1 C1 P3 4 C1 S2 C2 P2 6 C2 S3 تاپل پیوندشدنی ندارد. S4 C4 P4 7 C4 S5 C5 P5 10 C5 S6 تاپل پیوندشدنی ندارد.
عملگر پیوند )ادامه( 16 R 3 = R 1 C R 2 عملکرد: H R3 = H R1 H R2 در بدنه R 3 تاپلهای پیوندشدنی از دو رابطه قرار دارند. خصوصیات: چون صفات در heading رابطه نظم مکانی ندارند. R 1 C R 2 = R 2 C R 1 ) 2 Rحاصل 1 C R 2 = σ C (R 1 R Theta-Join در حالت عمومی زیرمجموعهای افقی از ضرب کارتزین است که در آن تاپلهایی از حاصلضرب که حائز شرط پیوند هستند حضور دارند. وقتی در شرط پیوند تساوی بخشی از کلید هر دو رابطه را داده باشیم. CK R CK R1 CK R2 اگر R = R 1 C R 2 باشد آنگاه
گونههای خاص عملگر پیوند پیوند طبیعی 17 )Natural Join( پیوند طبیعی گونهای از پیوند است که دو ویژگی دارد: = :Theta -1 2- صفات پیوند یک بار در جواب میآیند. )صفت یا صفات پیوند باید همنام هم باشند.( پیوند طبیعی به تمامی از مدل ریاضی پیروی نمیکنند. R 2 = S S.CITY=P.CITY P R 2 (S#,..., CITY, P#,..., W) S1 C1 P1 5 S1 C1 P3 4 S2 C2 P2 6 S4 C4 P4 7 S5 C5 P5 10
گونههای خاص عملگر پیوند پیوند طبیعی )ادامه( 18 اگر صفت مشترک ]همنام و همدامنه[ یک صفت باشد نیازی به قیدکردن نیست. اما اگر بیش از یک صفت باشد باید صفت یا صفات پیوند را قید کنیم. اگر قید نکنیم پیوند روی تساوی مقادیر تمام صفات مشترک انجام میشود. R 1 : A, B, C R 2 : A, F, C R = R 1 R 2 R : A, B, C, F.R 1 R 2 = R 1 آنگاه R 2 H R1 H R2 = اگر.R 1 R 2 = R 1 آنگاه R 2 H R1 = H اگر R2
گونههای خاص عملگر پیوند نیمپیوند 19 )Semijoin( نیمپیوند در شکل عمومی با هر Theta نوشته میشود. نماد: C )در چپ تعریف شده( R 3 R 1 C R 2 = Π HR مدل ریاضی: ) 2 (R 1 C R 1 عملکرد: H R3 = H R1 در بدنه R: 3 تاپلهای پیوند شدنی از رابطه چپ
گونههای خاص عملگر پیوند نیمپیوند )ادامه( 20 R 3 = S S.CITY=P.PCITY (P RENAME CITY AS PCITY) R 3 (S#,..., CITY) S1 S2 S4 S5 C1 C2 C4 C5 کاربرد این عملگر چیست تمرین: عملگر نیمپیوند در SQL شبیهسازی شود.
گونههای خاص عملگر پیوند برونپیوند 21 )Outer Join( برونپیوند Theta هر چیزی میتواند باشد. سه گونه دارد: C C C Left O. J. Right O. J. Full O. J. -1-2 -3 :R 4 R 1 C عملکرد R 2 H R4 = H R1 H R2 در بدنه R: 4 تاپلهای پیوند شدنی از دو رابطه و )Null Value( تاپلهایهای پیوندناشدنی از رابطه چپ گسترشیافته با هیچمقدار
گونههای خاص عملگر پیوند برونپیوند )ادامه( 22 R 4 = S P R 4 (S#,..., CITY, P#,..., W) S1 C1 P1 5 S1 C1 P3 4 S2 C2 P2 6 S4 C4 P4 7 S5 C5 P5 10 S3 C3?? S6 C6?? کلید R 4 مشکل ( R4 )CK چیست بیتردید کلید اصلی ندارد. :Outer Join از نظر ریاضی رابطه نیست چون کلید اصلی ندارد. مصرف حافظه زیاد -1-2 این عملگرها در عمل چه کاربردی دارند آیا عملگرهای Outer Join خاصیت جابجایی دارند
عملگر نیمتفریق 23 )Semi Minus( نیمتفریق R 1 SEMIMINUS R 2 = R 1 MINUS (R 1 SEMIJOIN R 2 ) عملکرد H R5 = H R1 در بدنه R: 5 تاپلهای پیوند نشدنی از رابطه چپ
عملگر تقسیم 24 X Y R 1 (A 1, A 2,, A n, B 1, B 2,, B m ) R 2 (B 1, B 2,, B m ) عملگر تقسیم )Divide( مفروضند رابطههای: شرط عمل: R 3 R 1 X, Y R 2 Y H R2 H R1 عملکرد: H R3 = X = H R1 H R2-1 R 2 R 1 در بدنه R: 3 بخش X از آن تاپلی از که تمام مقادیر Y از را داشته باشد. -2
عملگر تقسیم )ادامه( 25 R 1 (S#, P#) R 2 (P#) = R 3 (S#) S1 P1 P1 S1 S1 P2 P2 S1 P3 P3 S2 P1 S2 P2 S3 P1 R 1 (S#, P#) R 4 (P#) = R 5 (S#) S1 P1 P1 S1 S1 P2 P2 S2 S1 P3 S2 P1 S2 P2 S3 P1 Outer Divide چیست
عملگر تقسیم )ادامه( 26 ضرب و تقسیم جبر رابطهای لزوما عکس هم نیستند. تمرین: عملگر تقسیم را در SQL شبیهسازی کنید. )صفحه و از یادداشتهای تکمیلی سری DIVIDE را بدون استفاده از عملگر )II A-3 Q4 Q3 تمرین: بنویسید.
عملگر گسترش 27 EXTEND - عملگر گسترش )heading( صفت یا صفاتی را به عنوان یک رابطه اضافه میکند. حاصل رابطه است. دیگری EXTEND STUD ADD STADDRESS STUD (STID,, STD, STADDRESS) پیادهسازی شده ولی ALTER ستون)هایی( را به همان جدول اضافه ALTER TABLE با SQL در میکند. با این عملگر میتوانیم یک ستون محاسبهشدنی به رابطه اضافه نماییم.
عملگر تلخیص 28 SUMMARIZE عملگر تلخیص تاپلهای رابطه را گروهبندی میکند به نحوی که مقدار صفت گروهبندی در هر گروه یکسان باشد معموال با یک یا چند تابع جمعی استفاده میشود. این عملگردر SQL با GROUP BY پیاده شده است. SUMMARIZE STCOT BY (STID) ADD AVG(GRADE) AS AVER برای این پرسشها اول عنوان )Heading( رابطه جواب را تعیین میکنیم. )حداقل( MAX به جای AVG میتوانیم از توابع جمع و یا گروهی دیگر مانند MIN )حداکثر( )جمع( و یا COUNT )شمارشگر تاپلها( استفاده کنیم. SUM
عملگر غیرنرمالساز و نرمالساز 29 GROUP عملگر عملگر GROUPپیشنهاد است برای تبدیل رابطه نرمال به غیرنرمال )در NEST SQL است(. Date عکس آن UNGROUP )در )UNNEST SQL است. SP GROUP (P#, QTY) AS NNPQTY NNSP (S#, NNPQTY[P#, QTY]) P1 50 S1 P2 70 P3 60 S2 P1 100 P2 150 NNSP UNGROUP NNPQTY با استفاده از UNGROUP رابطه نرمال SP را میتوانیم مجددا به دست آوریم.
عملیات ذخیرهسازی با جبر رابطهای 30 از لحاظ تئوریک میتوان عملیات ذخیرهسازی را هم با عملگرهای جبر رابطهای انجام داد. عمل عملگر _ اول _ بعد درج حذف بههنگامسازی مقدار رابطهای متغیر رابطهای S : = S { S#=S7, SNAME=SN7, STATUS=17, CITY=C7 } یک رابطه نوع-سازگار با S و کاردینالیتی یک عملگر انتساب رابطهای )یک مقدار رابطهای را منتسب میکند به یک متغیر رابطهای(
مقایسه دو رابطه 31 مقایسه دو رابطه )H R2 = H R1 ( R 2 و دو رابطه R 1 مقایسهشدنی )قابل قیاس( هستند هر گاه نوع-سازگار باشند R 2 بدنه R 1 R 2 مقایسه رابطه در R 1 با با بدنه مقایسه میشود از نظر هم مجموعگی زیرمجموعگی و زبرمجموعگی Π STID STUD Π STID SCR {,,,, =, } F. یا T پاسخ عمل مقایسه: یا باشد پاسخ T اگر است اگر حداقل یک دانشجو باشد که درسی انتخاب نکرده باشد. C2 باشد پاسخ T است اگر حداقل در یک عمل ذخیرهسازی در این DB قاعده جامعیت اگر رعایت نشده باشد )حذف از دانشجو و یا درج در انتخاب درس(.
کامل بودگی جبر رابطهای جبر رابطهای زبانی است از نظر رابطهای کامل )Relational Completeness( متصور از مجموعه رابطههای ممکن را میتوان به کمک یک عبارت جبر رابطهای بیان کرد. جبر رابطهای ضابطه تشخیص کامل بودن زبانهای رابطهای است. یعنی هر رابطه معتبر 32 اگر هر رابطهای را که با جبر رابطهای میتوان نشان داد با زبانی مدعی کامل بودن رابطهای بتوان نشان داد آن زبان از نظر رابطهای کامل است. کاربردهای جبر رابطهای: عملیات بازیابی عملیات ذخیرهسازی SQL در )View( )... تعریف انواع رابطههای مشتق )رابطه مجازی لحظهای و مثال: تعریف دید...
مباحث تکمیلی در جبر رابطهای 33 :)Query( برای نوشتن یک پرسش از چه رابطههایی استفاده کنیم. از چه عملگرهایی استفاده کنیم )حتیاالمکان با کمترین تعداد عملگر( -1-2 3- چه ترتیبی از عملگرها استفاده کنیم. A-1 )صفحه )II مثالهایی از کاربرد جبر رابطهای را در عملیات در RDB )در یادداشتهای تکمیلی سری و 2-A( مطالعه نمایید. روشهای اجرای عملگر Join در DBMS کدامند
حساب رابطهای حساب رابطهای شاخهای است از منطق ریاضی منطق مسندات. حساب رابطهای و جبر رابطهای معادلند. یعنی هر رابطهای را که بتوان با یک عبارت جبر رابطهای نوشت میتوان با عبارتی از حساب رابطهای هم نوشت و برعکس. 34 حساب رابطهای حالت توصیفی دارد ولی جبر رابطهای حالت دارد. دستوری Prospective Descriptive به کمک عبارات منطقی شرایط ناظر به رابطه را برای سیستم توصیف میکنیم. دستورات عملیاتی به سیستم میدهیم. حساب رابطهای هم ضابطه تشخیص زبانهای رابطهای کامل است.
حساب رابطهای - سورها 35 )Quantifiers( سورها سور وجودی (F) :EXISTS X حداقل یک مقدار برای متغیر X وجود دارد به نحوی که به ازای آن فرمول F به درست ارزیابی شود. F :FOR ALL X (F) سور همگانی )عمومی( به ازای تمام مقادیر متغیر X فرمول به درست ارزیابی میشود. با فرض اینکه X از مجموعه اعداد صحیح مثبت مقدار میگیرد. EXISTS X (X<10) حاصل ارزیابی : TRUE حاصل ارزیابی : FALSE FOR ALL X (X<10)
حساب رابطهای سورها )ادامه( 36 یادآوری: بین این دو سور روابط دارد. زیر وجود FOR ALL X (F) = NOT EXISTS X (NOT F) EXISTS X (F) = NOT (FORALL X (NOT F)) FORALL X (F) EXISTS X (F) NOT EXISTS X (F) NOT FORALL X (F) بر اساس روابط فوق میتوان روابط پیچیده دیگری را نیز استنباط کرد مانند روابط هم ارزی زیر: FORALL X (F AND G) = NOT EXISTS X (NOT(F) OR NOT(G)) FORALL X (F OR G) = NOT EXISTS X (NOT(F) AND NOT(G)) EXISTS X (F OR G) = NOT FORALL X (NOT(F) AND NOT(G)) EXISTS X (F AND G) = NOT FORALL X (NOT(F) OR NOT(G))
حساب رابطهای - متغیرتاپلی 37 :)Range Variable( متغیر تاپلی Variable( )Tuple یا متغیر طیفی متغیری است که مقادیر آن تاپلهای یک رابطه است )هر لحظه یک تاپل(. RANGVAR SX RANGES OVER S; RANGVAR PX RANGES OVER P; RANGVAR SPX RANGES OVER SP; RANGVAR C2X RANGES OVER (S WHERE CITY= C2 ); طیف مقادیرش تاپلهایی از S است که شرط را داشته باشند.
حساب رابطهای فرمول خوشساخت 38 )WFF( یک فرمول خوش ساخت به صورت زیر تعریف میشود: یک رابطه و T یک متغیر تاپلی تعریف شده روی R باشد آنگاه R(T) یک فرمول اتمی است. R اگر و B T j و A اگر T i یک متغیر تاپلی روی رابطه R یک صفت از R باشد و یک متغیر تاپلی بر روی S theta( یک صفت از S باشد آنگاه T i.a theta T j.b یک فرمول اتمی است یک از عملگرهای متعارف مقایسهای است(. نیز که در آن C یک مقدار ثابت است فرمول اتمی هستند. C theta T j.b و T i.a theta C و اگر فرمول باشند آنگاه ) 1 NOT(F نیز فرمول هستند. (F 1 OR F 2 ) (F 1 AND F 2 ) F 2 F 1 یک فرمول و T یک متغیر تاپلی باشد آنگاه و T(F) FORALL فرمول نیز EXISTS T(F) F اگر هستند.
حساب رابطهای عبارت حساب رابطهای 39 یک متغیرتاپلی روی رابطه باشد در اینصورت شکل کلی عبارت حساب R(A 1, A 2,, A n ) اگر X رابطهای بدین صورت است: (target-items) [WHERE F] F و X.A 1, X.A 2,, X.A n که در آن target-items فهرستی از صفات متغیر تاپلی X به صورت یک فرمول خوشساخت است. ST.STID STT شماره تمام دانشجویان در رابطه ST.STID WHERE ST.STDEID= D11 شماره دانشجویان گروه آموزشی D11 (ST.STID, ST.STL) WHERE EXISTS STCO (ST.STID=STCO.STID AND STCO.COID= COM11 ) شماره دانشجویی و مقطع تحصیلی آنهایی که درس D11 را انتخاب کردهاند.
حساب رابطهای عبارت حساب رابطهای )ادامه( 40 شماره همه تهیه کنندگان SX.S# SX.SNAME WHERE SX.CITY= C2 AND SX.STATUS>= 15 15 نام تهیه کنندگان شهرستان C2 که وضعیت آنها بزرگتر از باشد. SX.SNAME WHERE EXISTS SX (SX.CITY= C2 AND SX.STATUS>=15) مثالهای بیشتر در یادداشتهای تکمیلی سری.II
41 پرسش و پاسخ... amini@sharif.edu